在這邊回答marlin12之前提出的5個問題,先回答4個
lazy load
lazy load就是指惰性載入,只要頁面不到那部份,那部份的頁面就不會載入。
lazy load問題比較是會在非內建瀏覽器的爬蟲容易遇到的。
像是基本的request等等,會無法應對。
在Puppeteer這裡不會有這些問題
再這裡提供2方法,可以讓滑鼠或網頁到指定位置,就會載入。
當然透過鍵盤等等其他方法也是行的通,大家可以去嘗試看看
SSR(server side render)
這也是非內建瀏覽器會遇到的問題,會要等到使用者或伺服器端之後操作或延遲載入,HTML才會出來。
這裡也可以使用上面兩個方法解決
再加上
以上在 Frame 裡面也是找的到這幾個方法
反爬蟲防禦
名單
針對反爬蟲防禦,上面那兩個方法都不錯,都可以有效減少爬蟲速度。
除此之外還有針對IP的黑白名單、useragent、
那目前最有效的方法就是
驗證碼
當然驗證碼也是可以透過機器學習、圖像辨識解決。
雖然不能完全防禦,但能增加難度。
簡而言之,正常的網站是不可能百分之百防禦爬蟲的。
高效地爬大量數據
針對這問題,我只能提供思路。
因為要高效率,就容易被爬蟲防禦。
要反爬蟲防禦,就沒辦法高效率。
效率
基本request > 內建瀏覽器puppeteer
無防禦機制 > 有防禦機制
防禦機制就照著上面的名單下去一一解決,針對每個網站找到最佳解。